package com.sjj.cp.client;

import java.util.List;











import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Widget;
import com.sjj.cp.client.server.FormulaService;
import com.sjj.cp.shared.FormulaListado;
import com.sjj.cp.shared.UsuarioGWT;

//Cuandole damos consultar a una formula especifica se abre esta interfaz
//la cual mostrara los detalles de toda la informacion de dicha formula

public class DetalleFormula extends Composite {
	
	private static DetalleFormulaUiBinder uiBinder = GWT.create(DetalleFormulaUiBinder.class);

	interface DetalleFormulaUiBinder extends UiBinder<Widget, DetalleFormula> {
	}
	
	@UiField
	Label labelMensaje;
	
	@UiField
	FlexTable tabla;
	
	@UiField
	FlexTable tablaInfo;
	
	@UiField
	FlexTable tablaMedicamentos;
	
	@UiField
	Button volver;
	
	//com.sjj.cp.client.Formula formula = null;
	
	com.sjj.cp.client.ListaFormula listaFormula;

	private FormulaListado formula;

	public DetalleFormula(com.sjj.cp.client.ListaFormula listaFormula) {		
		initWidget(uiBinder.createAndBindUi(this));
//		tabla.setText(0, 0, "DETALLE");		
		
		inicializarTablas();
		
		
	//en este Detalle tomaremos La formula de la cual se le dio consultar
	//y traeremos los detalles de la informacion de cada formula colocandolo
	//en una misma fila y columa usando espacios y tabulaciones
		
//		FormulaService.Util.getInstance().obtenerFormulas(new AsyncCallback<List<FormulaListado>>() {
		
		
		
		
		volver.setVisible(true);
	
		
		this.listaFormula=listaFormula;
	}
	
	private void inicializarTablas() {
		// TODO Auto-generated method stub
		tabla.getCellFormatter().setWidth(0, 0, "500px");		
		tabla.getCellFormatter().setWidth(0, 1, "500px");	
		tabla.getRowFormatter().addStyleName(0, "tablaHeader");	
		
		tablaInfo.getCellFormatter().setWidth(0, 0, "500px");		
		tablaInfo.getCellFormatter().setWidth(0, 1, "500px");
		
		tablaMedicamentos.getCellFormatter().setWidth(0, 0, "500px");		
		tablaMedicamentos.getCellFormatter().setWidth(0, 1, "500px");
		
		tablaInfo.setText(0, 0, "Id Medico");
		tablaInfo.setText(1, 0, "Id Paciente");
		tablaInfo.setText(2, 0, "Id Farmaceuta");
		
		tabla.setText(0, 0, "ID Formula");
		tabla.setText(1, 0, "Fecha Expedicion");
		tabla.setText(2, 0, "Fecha Vencimiento");
		tabla.setText(3, 0, "Estado");
		tabla.setText(4, 0, "Fecha Entrega");
		tabla.setText(5, 0, "Ciudad");
		tabla.setText(6, 0, "Diagnostico");
		tabla.setText(7, 0, "Finalidad");
		tabla.setText(8, 0, "Recomendaciones");
		
		tablaMedicamentos.setText(0, 0, "Id Medicamento");
		tablaMedicamentos.setText(0, 1, "Nombre Medicamento");
	}

	private void mostrarMensaje(String mensaje){
		labelMensaje.setVisible(true);
		labelMensaje.setText(mensaje);
	}
	

	

	
	
	@UiHandler("volver")
	void onClick(ClickEvent ce){
		eliminarTablas();
		listaFormula.setVisible(true);		
		this.setVisible(false);
	}

	private void eliminarTablas() {
		// TODO Auto-generated method stub
		tabla.removeAllRows();
		tablaInfo.removeAllRows();
		tablaMedicamentos.removeAllRows();
	}

	public void setFormula(FormulaListado formula) {
		this.formula = formula;		
		
		inicializarTablas();
		
		tablaInfo.setText(0, 1, formula.getMedico());
		tablaInfo.setText(1, 1, formula.getPaciente());
		tablaInfo.setText(2, 1, formula.getFarmaceuta());
		
		tabla.setText(0, 1, formula.getId());
		tabla.setText(1, 1, formula.getFechaExpedicion().toString());
		tabla.setText(2, 1, formula.getFechaVencimiento().toString());
		tabla.setText(3, 1, formula.getEstado());
		tabla.setText(4, 1, formula.getFechaEntrega().toString());
		tabla.setText(5, 1, formula.getCiudad());
		tabla.setText(6, 1, formula.getDiagnostico());
		tabla.setText(7, 1, formula.getFinalidad());
		tabla.setText(8, 1, formula.getRecomendaciones());
		int indx = 1;
		for(String id : formula.getIdMedicamentos()){
			tablaMedicamentos.setText(indx, 0, id);
			indx++;
		}
		indx = 1;
		for(String med : formula.getMedicamentos()){
			tablaMedicamentos.setText(indx, 1, med);
			indx++;
		}
		
	}

}
